The invention relates generally to communication devices and communication systems. More specifically, the invention relates to a system and method for just-in-time provisioning application-related information at a communication device.
Communication devices, such as for example wireless phones, are increasingly incorporating additional software functionality beyond that needed to establish a communication connection. For example, communication devices can include software applications such as calendars, contact lists, calculators, etc. Moreover, additional applications based on, for example, Java™ languages such as Java™2 Micro Edition (J2ME) are being developed for use with communication devices. These software applications also typically involve a sizable amount of application data. For example, a software application that provides the functionality of a contact list also uses application data relating to the contact's name, phone number, etc.
These communication devices, however, typically have storage devices with a limited storage capacity. Accordingly, the limited storage capacity of typical communication devices often limits the number of applications and the amount of application-related information that can be stored on a communication device at any given time.
One known way to accommodate a large number of software applications and their related data is to provision applications as needed and to remove the applications when not needed. Such known provisioning is performed by installing and/or removing an entire application and all of its related data. For example, as an application is needed, an unused application and all of its related data are first deleted from the communication device to make room for the provisioning of the new application and its related data.
This known way of provisioning applications to communication devices, however, suffers shortcomings. For example, removing an entire application and its related data may free more memory space than is actually needed to provision the new application. This can involve more time than would otherwise be involved to free only the amount of memory needed. In addition, removing an entire application and its related data also removes an indication to the user that that application and its related data may be available again in the future. Moreover, requiring user-initiated actions to select and/or remove applications overburdens the users and unnecessarily complicates the operation of communication devices.
Thus, a need exists for a more effective form of provisioning software applications and their related data for communication devices.